/***********************************************************************
	filename: 	CEGUIPropertyHelper.h
	created:	6/7/2004
	author:		Paul D Turner
	
	purpose:	Interface to the PropertyHelper class
*************************************************************************/

#ifndef _HgePropertyHelper_h_
#define _HgePropertyHelper_h_

#include "hgeGuiWindow.h"

/*!
\brief
	Helper class used to convert various data types to and from the format expected in Propery strings
*/
class PropertyHelper
{
public:
	static	float	stringToFloat(const String& str);
	static	UINT	stringToUint(const String& str);
	static	int		stringToInt(const String& str);
	static	bool	stringToBool(const String& str);
	static	Size	stringToSize(const String& str);
	static	Point	stringToPoint(const String& str);
    static  Vector3 stringToVector3(const String& str);
	static	hgeRect	stringToRect(const String& str);
	static const Image*	stringToImage(const String& str);
	static	colour	stringToColour(const String& str);
	static	ColourRect	stringToColourRect(const String& str);	
	static HCURSOR stringToCursor(const String& str);

	static VerticalFormatting stringToVertFormat(const String& str);
	static HorizontalFormatting stringToHorzFormat(const String& str);
	static VerticalAlignment stringToVertAlignment(const String& str);
	static HorizontalAlignment stringToHorzAlignment(const String& str);
	static VerticalTextFormatting stringToVertTextFormat(const String& str);
	static HorizontalTextFormatting stringToHorzTextFormat(const String& str);

	static String	floatToString(float val);
	static String	uintToString(UINT val);
	static String	intToString(int val);
	static String	boolToString(bool val);
	static String	sizeToString(const Size& val);
	static String	pointToString(const Point& val);
    static String   vector3ToString(const Vector3& val);
	static String	rectToString(const hgeRect& val);
	static String	imageToString(const Image* const val);
	static String	colourToString(const colour& val);
	static String	colourRectToString(const ColourRect& val);
	static String	hcursorToString(const HCURSOR& val);

	static String vertFormatToString(VerticalFormatting format);
	static String horzFormatToString(HorizontalFormatting format);
	static String vertAlignmentToString(VerticalAlignment alignment);
	static String horzAlignmentToString(HorizontalAlignment alignment);
	static String vertTextFormatToString(VerticalTextFormatting format);
	static String horzTextFormatToString(HorizontalTextFormatting format);
};

#endif	// end of guard _HgePropertyHelper_h_
